const express = require('express')
const app = express()

// jsonp原理
app.all('/jsonp', (req, res) => {
  const data = {
    name: 'xls',
    age: 30
  }
  str = JSON.stringify(data)
  // jsonp响应给前端的数据必须是js代码
  res.end(`handle(${str})`)
})

// 原生jsonp 检测用户名是否存在
app.all('/jsonp-origin', (req, res) => {
  const data = {
    code: 201,
    data: '用户名已存在'
  }
  str = JSON.stringify(data)
  // jsonp响应给前端的数据必须是js代码
  res.end(`handle(${str})`)
})

// jq-jsonp
app.all('/jquery-jsonp', (req, res) => {
  const data = {
    code: 200,
    data: {
      name: 'da',
      age: 30
    }
  }
  str = JSON.stringify(data)
  // 接受参数
  // cb 即 callback: jQuery36108397358186050743_1662961589068
  const cb = req.query.callback
  // jsonp响应给前端的数据必须是js代码
  // str加括号
  res.end(`${cb}(${str})`)
})

// cors
app.all('/cors', (req, res) => {
  // 设置请求头允许跨域
  res.setHeader('Access-Control-Allow-Origin', '*')
  // 设置响应头 允许自定义头
  res.setHeader('Access-Control-Allow-Headers', '*')
  const data = {
    code: 200,
    data: {
      name: 'da',
      age: 30
    }
  }
  str = JSON.stringify(data)
  res.end(`${str}`)
})

app.listen(9527, () => {
  console.log('server running at http://127.0.0.1:9527')
})
